Method and System for Accessing Applications and Data, and for Tracking of Key Indicators on Mobile Handheld Devices

ABSTRACT

A method, system, and apparatus for accessing data-driven websites and applications on a mobile client device are described. A request for a website received from the mobile client device is transmitted to a provider. At least one web page template of the website and application data corresponding to the at least one web page template is received from the provider in response to the request, and is transmitted to the mobile client device. Thereafter, in an offline mode, the mobile client device can display a plurality of web pages corresponding to the website, each web page displaying corresponding data of the application data formatted according to a common format provided by the at least one web page template. Furthermore, a method, system, and apparatus for tracking the usage of applications on a mobile client device is provided. The occurrence of at least one user initiated event on the mobile client device during offline operation is enabled. Usage data corresponding to the occurrence of the user initiated event(s) is stored on the mobile client device. The mobile client device is synchronized with a server. The usage data is transmitted to the server.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a divisional of U.S. patent application Ser. No.10/673,548, filed on Sep. 30, 2003, entitled METHOD AND SYSTEM FORACCESSING APPLICATIONS AND DATA, AND FOR TRACKING OF KEY INDICATORS ONMOBILE HANDHELD DEVICES, which is incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to mobile handheld devices, and inparticular, to synchronization of data on mobile handheld devices.

2. Background Art

Data-driven applications and websites are those that include the displayof multiple pages of data, each page showing data elements formatted ina similar manner from page to page. Example data-driven applicationsand/or websites include: directories, including phone directories ordirectories of other personal, corporate, or client information; emailtools (such as AOL, HOTMAIL, YAHOO! EMAIL, and others); financial tools;investment tools (such as ETRADE, AMERITRADE, and others);banking/checking tools (such as banking websites, QUICKEN, and others);etc.

Such applications and websites are currently made accessible on mobiledevices by copying the entire application, or copying the pages ofinterest of the website to the mobile device. For example, if a mobiledevice desires to have access to a data-driven website for offlineviewing, a copy of all the pages of interest of the website aretransferred to the mobile device. If the website is updated, the websitemust be entirely re-transmitted to the mobile device. For a data-drivenapplication, a special mobile version of the application and relateddata are copied to the mobile device. In either case, after transfer ofthe website or application to the mobile device, the mobile device canoperate offline and view/interact with the website or application.

This practice, however, has its limitations. For example, a large amountof storage is required on the mobile device to store all of thedownloaded web pages incorporating data, or to store the entireapplication and related data. Furthermore, transfer times for these webpages and applications to the mobile device can be long, including theinitial transfer time required, and the time required to transferupdates to the website or application to the mobile device.

Thus, what is needed is a way to avoid the storage and transfer timeproblems that are present in conventional systems for accessingdata-driven applications on mobile devices.

BRIEF SUMMARY OF THE INVENTION

In aspects of the present invention, methods, systems, apparatuses, andcomputer program products for enabling access to data driven websites onmobile client devices are described. According to the present invention,web page templates and associated application data are transferred froma provider to a mobile device to provide access to applications andwebsites offline. In the case of a website, instead of transferring allof the pages of interest to the mobile device, a smaller number of webpage templates are transferred, along with the associated applicationdata. In the case of an application, instead of copying an entireapplication to a mobile device, the application provider can generate aweb page templates and application data for copying to the mobiledevice. The web page templates incorporate at least some of thefunctionality of the application, and allow viewing of the applicationdata on the mobile device.

In a first aspect, a mobile client device is synchronized with a server.A request for a website is transmitted from the mobile client device tothe server. At least one web page template and application datacorresponding to the website are received from the server at the mobileclient device in response to the request. A selected web page of thewebsite is displayed on the mobile client device in an offline mode.Data of the application data that corresponds to the selected web pageis displayed, formatted according to the at least one web page template.

In a further aspect, a script called by the at least one web pagetemplate can be executed to format the data for display on the mobileclient device. For example, the script can be a Javascript, or otherscript type.

In a still further aspect, the mobile client device can be synchronizedwith the server a second time. A second request for the website can betransmitted from the mobile client device to the server. A changedportion of the at least one web page template and application data arereceived from the server at the mobile client device in response to thesecond request.

In an alternative aspect, a change to the web page template(s) and/orapplication data is made by a user at the mobile client device. Themobile client device is synchronized with the server. The change to theapplication data is transmitted from the mobile client device to theserver.

In another aspect of the present invention, a server interfaces one ormore providers with a mobile client device. The mobile client device issynchronized with the server. A request for a website received from themobile client device is transmitted to a provider. At least one web pagetemplate of the website and application data corresponding to the atleast one web page template is received from the provider in response tothe request.

The at least one web page template and the application data aretransmitted to the mobile client device. Thus, in an offline mode, themobile client device can display a plurality of web pages correspondingto the website, each web page displaying corresponding data of theapplication data formatted according to a common format provided by theat least one web page template.

In another aspect of the present invention, a method, system, andapparatus for tracking the usage of applications on a mobile clientdevice is described. The occurrence of at least one user initiated eventon the mobile client device while the client device is operating offlineis enabled. Usage data corresponding to the occurrence of at least oneuser initiated event on the mobile client device is stored. The mobileclient device is synchronized with a server. The usage data istransferred to the server.

In a further aspect, at least one report is created from the usage data.The reports can be printed, viewed, or otherwise displayed.

These and other objects, advantages and features will become readilyapparent in view of the following detailed description of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES

The accompanying drawings, which are incorporated herein and form a partof the specification, illustrate the present invention and, togetherwith the description, further serve to explain the principles of theinvention and to enable a person skilled in the pertinent art to makeand use the invention.

FIG. 1 shows a conventional system for accessing website data on amobile client device

FIG. 2 shows a conventional system for accessing a data-drivenapplication on a mobile client device.

FIG. 3 shows a system for viewing a data-driven application or websiteon a mobile client device, according to an embodiment of the presentinvention.

FIG. 4 shows a flowchart providing example steps for creating a websitethat may be copied and stored on a mobile device in an efficient manner,according to an example embodiment of the present invention.

FIG. 5A shows a developer creating and posting web page templates andapplication data on a provider website, according to an exampleembodiment of the present invention.

FIG. 5B shows a web page template that includes a script, according toan embodiment of the present invention.

FIGS. 6A and 6B relate to example web page templates, according toembodiments of the present invention.

FIG. 6C shows example application data, according to an embodiment ofthe present invention.

FIGS. 6D and 6E display web pages created from web page templates andapplication data, according to example embodiments of the presentinvention.

FIGS. 7-10 show block diagrams of example mobile computing environments,according to embodiments of the present invention.

FIGS. 11A-11C show flowcharts providing example steps for managing thecopy of a data-driven website from a provider, according to exampleembodiments of the present invention.

FIGS. 12-17 show example block diagrams relating to the flowcharts ofFIGS. 11A-11C, illustrating operation of the present invention.

FIGS. 18A-18C show flowcharts providing example steps for copying andmanaging a data-driven website at a mobile client device, according toexample embodiments of the present invention.

FIG. 19 shows a usage tracker in a mobile client device, according toembodiments of the present invention.

FIG. 20 shows an example log file transferred to a server from a mobileclient device, according to an embodiment of the present invention.

FIG. 21 shows a flowchart providing example steps for trackingapplication usage on a mobile device, according to an example embodimentof the present invention.

The present invention will now be described with reference to theaccompanying drawings. In the drawings, generally, like referencenumbers indicate identical or functionally similar elements.Additionally, generally, the left-most digit(s) of a reference numberidentifies the drawing in which the reference number first appears.

DETAILED DESCRIPTION OF THE INVENTION Introduction

The present invention enables mobile devices to more efficiently accessdata-driven applications and websites while operating in an offlinemode. The present invention allows data-driven applications and websitesto be interacted with, and viewed on mobile clients, while using lessstorage space, and requiring transfer of smaller amounts of data.Furthermore, the present invention allows for the customization of thedisplay of data on mobile clients, on a client-by-client basis, or anyother basis, as desired.

Data-driven applications and websites are applications and websites thatallow the display of multiple pages of data, each page showing the dataelements formatted in a similar manner from page to page. Exampledata-driven applications and/or websites include: directories, includingphone directories and directories of other personal, corporate, orclient information; email tools (such as AOL, HOTMAIL, YAHOO! EMAIL, andothers); financial tools; investment tools (such as ETRADE, AMERITRADE,and others); database tools (such as MICROSOFT EXCEL); banking/checkingtools (such as banking websites, QUICKEN, and others); etc. The presentinvention is directed towards these types of data-driven websites andapplications, and to any other similar type websites or applicationswhere many pages of commonly-formatted data are present.

Conventionally, such applications and websites are made accessible onmobile devices by copying the entire application or website (i.e., allof the web pages of interest) to the mobile device. For example, FIG. 1shows a conventional system 100 for displaying website data on a mobileclient device 102. Mobile client device 102 desires to have access to awebsite 104 on device 102 when operating in an offline mode. Website 104is a data-driven website. Mobile client device 102 desires to view dataof website 104 in an offline mode. Thus, according to system 100, a copyof website 104 is transferred to mobile client device 102, shown aswebsite copy 106. In other words, web pages of interest of website 104,including the data incorporated therein, are copied in their entirety todevice 102. Mobile client device 102 can thereafter operate offline, andview the web pages of website copy 106, which incorporates data.However, system 100 is an inefficient way of accessing website 104 in anoffline manner. A relatively large amount of storage is required onmobile client device 102 to store all of the downloaded web pagesincorporating data. Furthermore, any updates to pages of website 104 canlead to having to entirely re-copy website 104 to mobile client device102.

FIG. 2 shows an example conventional system 200 for viewing adata-driven application on a mobile client device 102. In system 200,mobile client device 102 desires to have access to an application 202 onthe mobile client device 102. Thus, a special mobile device version iscreated of application 202 and both the mobile version of theapplication and related data are transferred to mobile client device202, as shown as application copy 204. Thereafter, mobile client device102 can access application copy 204 and related data in an offline mode.However, system 200 is an inefficient way of accessing application 202on mobile client device 102. A large amount of storage is required formobile client device 102 to store application 202 and its related data.Furthermore, any updates to application 202 can lead to having topartially or entirely re-engineer and application 202 to mobile clientdevice 102.

The present invention enables mobile devices to avoid the storage andtransfer time problems that are present in conventional systems. Insteadof copying entire applications and/or websites to client devices, thepresent invention copies web page templates and related application datato mobile devices. On the mobile device, the web page templates arefilled in with the application data to create web pages that can beaccessed/displayed on the mobile device. This is a more efficient way ofviewing data-driven applications/websites on mobile devices relative toconventional systems.

For example, FIG. 3 shows a system 300 for viewing a data-drivenapplication on a mobile client device 302, according to an embodiment ofthe present invention. A mobile client device 302 is shown in FIG. 3, onwhich it is desired to access data-driven applications and websites inan offline mode. According to the present invention, mobile clientdevice 302 accesses a website 304 for copy to device 302. However,instead of copying all of the desired web pages of website 304 (orcopying an entire application) to mobile client device 302, web pagetemplates and application data 306 are copied to mobile client device302. A relatively smaller number of web page templates and relatedapplication data require less storage space than copying each desiredweb page of a website, such as website 104, individually. Alternatively,in an application environment, the web page templates and relatedapplication data will tend to require less space than that required tostore an entire application, such as application 202.

Thus, for example, instead of copying one index web page and 100 dataweb pages to mobile client device 302, according to the presentinvention, a single index web page template and a single data web pagetemplate can be copied to device 302. The application data can be usedto fill in the web page templates for display on mobile client device302. Thus, savings in storage space on mobile client device 302 and intransfer times of objects to mobile client device 302 are realized.

Furthermore, when updates are made to the web page templates and/orapplication data, only the updated portion need be copied. For instance,if updates are made to a web page template, only the web page templateneed be recopied, without having to re-copy the application data. Ifchanges are made to application data, the application data can berecopied, without having to copy the web page templates. Note that theapplication data can be organized in a single or multiple files. Thus,during an update, only the updated file(s) need be copied. Note that insome situations, it may be of value to re-copy the web pages templatesand application data in their entirety.

FIG. 4 shows a flowchart 400 providing example steps for creating ormodifying a website that may be copied and stored on a mobile device inan efficient manner, according to an example embodiment of the presentinvention. Other structural and operational embodiments will be apparentto persons skilled in the relevant art(s) based on the followingdiscussion. These steps are described in detail below.

Flowchart 400 begins with step 402. In step 402, web page template(s)are created that format application data. For example, a developer 506creates web page template(s) 502, as shown in FIG. 5A, according to anexample embodiment of the present invention. Developer 506 may be anindividual or group of individuals, and/or an automated softwaregenerator tool. Developer 506 is typically employed or contracted by anapplication provider to maintain/generate the website. Web pagetemplate(s) 502 typically comprise a series of commands of HTML(HyperText Markup Language), XML (Extensible Markup Language), or otherlanguage understood by web browsers. As described in further detailbelow, the commands of web page template(s) format data of application504 for viewing by the web browser, and may allow for interaction withthe data through a user interface.

For example, as shown in FIG. 5B, web page template(s) 502 may includereference to scripts which access application data 504, and formatapplication data 504 into web page template(s) 502 to create web pagesviewable on the mobile device. In an embodiment, the scripts can beJavaScript scripts which interact with the HTML, XML, or other sourcecode to dynamically create web pages using web page template(s) 502 andapplication data 504.

FIGS. 6A-6C illustrate an example implementation of step 402, accordingto embodiment of the present invention. FIGS. 6A and 6B represent firstand second web page templates 602 and 604 (the source code for web pagetemplates 602 and 604 is not shown). FIG. 6 shows application data 606,according to example embodiments of the present invention. The exampleapplication of FIGS. 6A-6C is an employee directory for a company.

First web page template 602 of FIG. 6A represents an employee directoryindex. The employee index is capable of providing a list of employeenames, with which a user may interact. Blank spaces 612 a-d of first webpage template 602 represent locations where employee names fromapplication data 606 would be entered for display.

Second web page template 604 of FIG. 6B represents a detailed employeeinformation page. Second web page template 604 is capable of showing avariety of data elements related to a particular employee selected byinteracting with first web page template 602. For example, as shown forsecond web page template 604, the selected employee's name is shown,along with the employee's phone number, the employee's position/titlewithin the company, and other data. Blank spaces are shown in row 620 ofsecond web page template 604 where the various data elements related tothe selected employee would be entered for display. In embodiments, thedata shown in second web page template 604 can be interacted with.

FIG. 6C shows application data 606, which in the current example isvarious data elements related to the first and second web page templates602 and 604. For example, a first column 632 of application data 606shows employee names, which can be displayed formatted according tofirst web page template 602. For example, FIG. 6D shows an index webpage 608 created from first web page template 602 with data of column632 present therein. For instance, in an embodiment, when a userattempts to view web page 608, a script of first web page template 602accesses application data 606 to bring the data of column 632 into firstweb page template 602 for display as web page 608.

A second column 634 of application data 606 shows employee phonenumbers. A third column 636 shows employee positions. A fourth column638, and further columns, can show any other data element type, asdesired by the particular application. Data of application 606 relatingto a particular employee can be displayed formatted according to secondweb page template 604. For example, when a particular employee isselected from web page 608, a corresponding employee data web page iscreated. For example, FIG. 6E shows a detailed employee information webpage 610 created from second web page template 604 with data of columns632, 634, 636, and 638 present in corresponding columns of row 620therein. In the current example, a user selected employee Steve Jones inweb page 608 for viewing. In an embodiment, a script of second web pagetemplate 602 accesses application data 606 to bring the data of columns632, 634, 636, and 638 for Steve Jones into second web page template 604for display as web page 610.

In step 404, the web page template(s) and application data are posted ona website. For example, in an embodiment, developer 506 posts web pagetemplate(s) 502 and application data 504 on an application provider'swebsite, such as website 304.

In step 406, access to the website is provided to users, includingmobile users. For example, the website is made available by anapplication provider to users as a group/company internal website,and/or is made externally available to users through the World Wide Web(i.e., Internet). Thereafter, as described herein, web page template(s)502 and application data 504 can be copied from the application providerwebsite to mobile devices. The application data may be viewed in webpage format on the mobile devices when they are operating in an offlinemode.

In an embodiment, flowchart 400 can also include a step of customizingthe web page template(s) 502 and/or application data 504 for one or moreusers. For example, web page template(s) 502 can be customized so thatthey format application data for display in a first manner for a firstset of users, and format application data for display in a second mannerfor a second set of users. Web page templates(s) 502 can be customizedfor any number of users. For instance, this may be accomplished by metadata or data tags to cause particular formatting to occur for one ormore user names, authentication tokens, etc. Thus, embodiments of thepresent invention can flexibly display data for different usersaccording to their particular needs. Furthermore, web page template(s)502 can likewise be customized to provide differentfunctionality/interactability for different users.

As described above, the invention is applicable to anyapplication/website type, and in particular, to data-drivenapplications/websites. Any number of one or more web page templates canbe used to format application data in any manner. The application datacan include any number of type(s) of data, any quantities thereof, andcan include the data formatted in any manner. For example, theapplication may be an email tool. Similar to the example described abovewith reference to FIGS. 6A-6E, the email tool may include an index webpage template where a user can view subject lines, sender names, and/orother application data related to a list of emails. The email tool thenmay include a second web page template that shows detail about aparticular email selected from the index web page, including an emailsubject line, the email text body, attachments, and/or any otherrelevant application data. The invention is applicable to any type ofdata driven application/web site type, as would be understood to personsskilled in the relevant art(s).

Example Environment of the Present Invention

FIG. 7 is a block diagram of an example mobile computing environment 700according to an embodiment of the invention. The mobile computingenvironment 700 includes a mobile client device 702, a server 704(although only one server 704 is shown, in practice the mobile computingenvironment 700 may include a plurality of servers), and one or moreapplication providers 706.

Generally, server 704 maintains a collection of channels. In anembodiment, a channel comprises a collection of objects. An object isany entity that can be transferred to a mobile client device 702, suchas but not limited to a web pages, content, applications, applicationdata, services, images, movies, music, links, etc. A channel can includea location of a root object, such as but not limited to a URL (uniformresource locator), and an indication of the number of levels below theroot object, for which to include objects in the channel. For example,in an embodiment, if a channel number property is equal to “1 level,”then all objects that are 1 level down from the root object (reached bytraversing links in the root object), are included in the channel. Ifthis property is equal to “2 levels,” then all objects that are 1 leveldown from the root object (reached by traversing links in the rootobject), and all objects that are 1 level down from those objects(reached by traversing links in those objects), are included in thechannel. Embodiments of the invention allow “uneven” trees, where somebranches of the tree extent to a greater number of levels than otherbranches of the tree. In other embodiments, the trees are even orbalanced.

Server 704 offers channels to mobile client device 702. Mobile clientdevice 702 may access the server 704 and view the collection ofchannels. The mobile client device 702 may then select any combinationof the channels in the collection. Server 704 maintains a list of thechannels associated with mobile client device 702.

Mobile client device 702 and server 704 may be coupled together toperform a synchronization process. During a synchronization process,server 704 loads a device 702 with the channels associated with themobile client device 702. Generally, server 704 does this by obtainingfrom providers 102 the objects defined by the channels, and causingthose objects to be stored on the mobile client device 702. Thus, duringthe synchronization process, server 704 will load the mobile clientdevice 702 with the selected channels. More particularly, server 704will load the mobile client device 702 with the objects associated withthe channels.

The mobile client device 702 may process and use those objects when notconnected to the server 704 (i.e., in an “offline” mode). The inventionenables the mobile client device 702 to actively interact with theobjects and channels.

During synchronization with server 704, device 702 is coupled withserver 704. In embodiments, mobile client device 702 directlycommunicates with server 704 via a communications medium 710 in a wiredand/or wireless fashion using any protocol. For example, device 702 may“dock” directly with server 704 in a wired fashion. In anotherembodiment, mobile client device 702 indirectly interacts with server704 via an adapter (not shown in FIG. 7). For example, mobile clientdevice 702 may be a device, such as a Palm device, and the adapter maybe a cradle and a computer coupled to the cradle (e.g., mobile clientdevice 702 is inserted into the cradle). In such an embodiment, theadapter presents itself to server 704 as a mobile client device. Whenserver 704 sends objects to the adapter, the adapter writes thoseobjects to mobile client device 702. In embodiments, device 702 and/oran adapter (when present) can include a Hot Sync™ Manager (in a Palmoperating environment, for example), an Active Sync™ (in the Windows CE™operating environment, for example), or Pilot Link™ (in the Unixoperating environment, for example) etc. It is noted that the inventionis not limited to any of the implementation examples discussed herein,and that these implementation examples are provided for illustrativepurposes only.

Device 702 may be any type of data processing device. In embodiments ofthe invention, device 702 is a mobile computing device, although theinvention is not limited to these embodiments. In such exampleembodiments, the device 702 may be, but is not limited to, handheldcomputers, cellular phones, internet-enabled phones, pagers, radios,televisions, audio devices, car audio systems, recorders, text-to-speechdevices, bar-code scanners, net appliances, mini-browsers, personal dataassistants (PDAs), etc.

In embodiments of the invention, device 702 includes software, hardware,firmware, and/or any combinations thereof to provide its functions. Inan embodiment, mobile client device 702 includes a user interface (UI),a web browser, and a JavaScript engine. Other embodiments of mobileclient device 702 may include alternative and/or additional modules.

The user interface of device 702 preferably includes a graphical userinterface that enables users to interact with mobile client device 702and functions and modules provided by mobile client device 702. Forexample, the user interface can display web pages that have beendownloaded to device 702, and can allow users to interact with the webpages. The JavaScript engine of device 702 executes objects written inthe JavaScript language that operate on mobile client device 702.

Providers 706 are sources of various types of objects, such as but notlimited to content (content providers), applications (applicationproviders), services (service providers), etc. Providers 706 may alsoinclude servers (similar to server 704), which may provide objects suchas but not limited to content, applications, services, etc. For example,and without limitation, the application providers 706 may provideobjects relating to (without limitation) operating systemupdates/changes, system upgrades, application updates/changes, etc.

Server 704 and application 706 are coupled together through acommunication path 708. Communication path 708 can be any type ofcommunication link, or combination of links, wired or wireless. Server704 and application provider 706 can be located within the same computersystem, or in different computer systems.

For example, FIG. 8 shows server 704 residing in a first computer system802, and shows application provider 706 residing in a second computersystem 804. First and second computer systems 802 and 804 can beworkstations, personal computers, or any other computer system type. Insuch an arrangement, server 704 and application 706 typicallycommunicate through a network connection (wired, wireless, orcombination). For example, FIG. 9 shows server 704 and applicationprovider 706 coupled together through communication path 708, whichincludes a first link 904, a network 902, and a second link 906. Network902 can be any type of network, or combinations of networks, including alocal area network (LAN) and/or wide area network (WAN), including anintranet and/or the Internet. Server 704 can include any combination ofhardware, software, and/or firmware present in computer system 802.Application provider 706 can include any combination of hardware,software, and/or firmware present in computer system 804.

Alternatively, as shown in FIG. 10, server 704 and application provider706 can both be present in a single computer system 1002.

Example Operational Embodiments of the Present Invention

Operational embodiments of the present invention are provided in thissection for enabling the access of data-driven websites/applications onmobile devices. These operational embodiments are provided forillustrative purposes, and are not limiting. Additional operational andstructural embodiments for the present invention will be apparent topersons skilled in the relevant art(s) from the description herein.These additional embodiments are within the scope and spirit of thepresent invention.

FIG. 12 shows an example system 1200, according to an example embodimentof the present invention. System 1200 is used to demonstrate exampleoperations of the present invention. As shown in FIG. 12, system 1200 issimilar to system 700 shown in FIG. 7. System 1200 includes mobileclient device 702, server 704, and application provider 706. Server 704and application 706 are coupled by communication path 708. As shown inFIG. 12, application provider 706 includes one or more web pagetemplate(s) 502 and application data 504. Web page template(s) 502 andapplication data 504 are present on a website of application provider706, which is accessible to server 104 via communication path 708.

FIG. 11A shows a flowchart 1100 providing example steps for managing thecopy of a data-driven website from a provider, such as applicationprovider 706, to a mobile device, such as mobile client device 702,according to an example embodiment of the present invention. Forexample, the steps of flowchart 1100 may be performed by a server, suchas server 704 shown in FIG. 12, and/or one or more other intermediarydevices between application provider 706 and mobile client device 702.In an embodiment, the steps shown in FIG. 11A may occur during asynchronization process between mobile client device 702 and server 704,although these steps do not have to occur during synchronization. FIGS.11B and 11C show additional steps that may be performed for flowchart1100, according to embodiments of the present invention. Otherstructural and operational embodiments will be apparent to personsskilled in the relevant art(s) based on the following discussion. Thesesteps are described in detail below.

Flowchart 1100 begins with step 1102. In step 1102, a request for awebsite received from the mobile client device is transmitted to aprovider. For example, FIG. 13 shows system 1200, where mobile clientdevice 702 has coupled with server 704 via communication medium 710. Asrepresented by arrows 1302 and 1304, server 704 receives a request for awebsite from mobile client device 702 and transmits the request toapplication provider 706, which includes the requested website.

In step 1104, at least one web page template of the website andapplication data corresponding to the at least one web page template arereceived from the provider in response to the request. For example, FIG.14 shows system 1200, where server 704 receives web page template(s) 502and application data 504 from application provider 706 in response tothe request, as represented by arrow 1402.

In step 1106, the at least one web page template and the applicationdata are transmitted to the mobile client device. For example, FIG. 14shows server 704 transmit web page template(s) 502 and application data504 to mobile client device 702, as represented by arrow 1404. Thecopies of web page template(s) 502 and application data 504 stored inmobile client device 702 are shown in FIG. 14 as web page template(s)502 a and application data 504 a.

Thus, in an offline mode, where mobile client device 702 is not coupledto server 704, mobile client device 702 can display a plurality of webpages corresponding to the website of application provider 706. Each webpage displays corresponding data of application data 504 a, formattedaccording to a common format(s) provided by web page template(s) 502 a.

Furthermore, changes to web page template(s) 502 and/or application data504 can occur on either or both of mobile client device 702 andapplication provider 706. This is represented in FIG. 15, which showschanges 1502 made at mobile client device 702 and changes 1504 made aapplication provider 706. For example, on mobile client device 702and/or application provider 706, a developer or user can change web pagetemplate(s) 502 and/or application data 504. One or more web pagetemplates of web page template(s) 502 can be changed by modifying,deleting, and adding them, to change formatting of displayed data,and/or to modify, add, or subtract logic, functionality, and/orinteractability to the resulting web pages. For example, scripts of webpage template(s) 502 can be changed, by modifying one or more existingtemplates, deleting one or more templates, and adding one or moretemplates to change formatting of displayed data. Furthermore, scriptsof web page template(s) 502 can be changed to modify, add, or subtractlogic, functionality, and interactability to the resulting web pages.Alternatively or additionally, data of application data 504 may bechanged by modifying one or more data elements, adding data, anddeleting data.

Note that in another embodiment, changes to web page template(s) 502and/or application data 504 can occur at server 704, as will be apparentto persons skilled in the relevant art(s) from the teachings herein.

FIG. 11B shows example additional steps for flowchart 1100, according toan embodiment of the present invention where changes have been made atapplication provider 704. In an embodiment, the steps shown in FIG. 11Bmay occur during a second or subsequent synchronization process betweenmobile client device 702 and server 704, although these steps do nothave to occur during synchronization.

In step 1108, a second request for the website received from the mobileclient device is transmitted to the provider. For example, a secondrequest for the website by mobile client device 702 is transmitted toapplication provider 706 by server 704 in a similar fashion as shown inFIG. 13 for the first request.

In step 1110, a changed portion of the at least one web page templateand application data is received from the provider in response to thesecond request. For example, as shown in FIG. 17, a changed portion 1702is received from application provider 706 by server 704 in response tothe second request. Changed portion 1702 can include changes to web pagetemplate(s) 502 and/or application data 504 as described above. Changedportion 1702 may include entire web page templates that have beenchanged, or the changed portions thereof. Furthermore, changed portion1702 may include one or more changed data elements of application data504, or all of application data 504, with changes therein.

In step 1112, the changed portion of the at least one web page templateand application data is transmitted to the mobile client device. Forexample, as shown in FIG. 17, changed portion 1702 is transmitted fromserver 704 to mobile client device 702.

Thus, thereafter, mobile client device 702 can access the website in anoffline mode, incorporating the changes transferred thereto as changedportion 1702.

FIG. 11C shows example additional steps for flowchart 1100, according toanother embodiment of the present invention where changes have been madeat mobile client device 702. In an embodiment, the steps shown in FIG.11C may occur during a second or subsequent synchronization processbetween mobile client device 702 and server 704, although these steps donot have to occur during synchronization.

In step 1114, a changed portion of the at least one website template andapplication data is received from the mobile client device. For example,as shown in FIG. 16, a changed portion 1602 is received from mobileclient device 702 at server 704. Changed portion 1602 can includechanges to web page template(s) 502 a and/or application data 504 a asdescribed above. Changed portion 1602 may include entire web pagetemplates that have been changed, or the changed portions thereof.Furthermore, changed portion 1602 may include one or more changed dataelements of application data 504 a, or all of application data 504 a,with changes therein.

In step 1116, the changed portion is transmitted to the provider. Forexample, as shown in FIG. 16, changed portion 1602 is transmitted toapplication provider 706 by server 704.

Thus, thereafter, future copies by mobile client device 702, or by othermobile devices, of web page template(s) 502 and application data 504will incorporate the changes transferred thereto as changed portion1602.

Note that the presence of changes to web page template(s) 502 and/orapplication data 504 can be determined before performing any transfers.For example direct comparisons, hashing processes, checksums, timestamps, version numbers, and/or any other way of comparing web pagetemplate(s) 502 and/or application data 504 stored on applicationprovider 706 to web page template(s) 502 a and/or application data 504 astored on mobile client device 702 can be performed.

FIGS. 18A-18C relate to embodiments of the present invention from aserver perspective. FIGS. 18A-18C related to embodiments of the presentinvention from the perspective of a mobile device. FIG. 18A shows aflowchart 1800 providing example steps for receiving and managing a copyof a data-driven website at a mobile device, according to an exampleembodiment of the present invention. The steps of flowchart 1800 may beperformed by a mobile device, such as mobile client device 702. FIGS.18B and 18C show additional steps that may be performed for flowchart1800, according to embodiments of the present invention. Otherstructural and operational embodiments will be apparent to personsskilled in the relevant art(s) based on the following discussion. Thesesteps are described in detail below.

Flowchart 1800 begins with step 1802. In step 1802, a request for awebsite is transmitted from the mobile client device to the server. Forexample, as shown in FIG. 13, a request for a website is transmittedfrom mobile client device 702 to server 704, as represented by arrow1302.

In step 1804, at least one web page template and application datacorresponding to the website are received from the server at the mobileclient device in response to the request. For example, as shown in FIG.14, web page template(s) 502 a and application data 504 a are receivedfrom server 704 at mobile client device 702 in response to the request,as represented by arrow 1404.

Note that in an embodiment, steps 1802 and 1804 may occur during asynchronization process between mobile client device 702 and server 704,although they do not necessarily have to occur during a synchronization.

In step 1806, a selected web page of the website is displayed on themobile client device in an offline mode by displaying data of theapplication data corresponding to the selected web page formattedaccording to the at least one web page template. For example, a web pagemay be displayed by a graphical user interface (GUI) of mobile clientdevice 702 in an offline mode when selected by a user. The selected webpage displays data of application data 504 a. The data is formattedaccording to a template of web page template(s) 502 a.

FIG. 18B shows example additional steps for flowchart 1800, according toan embodiment of the present invention.

In step 1808, a second request for the website is transmitted from themobile client device to the server. For example, a second request forthe website by mobile client device 702 is transmitted to server 104 ina similar fashion as shown in FIG. 13 for the first request.

In step 1810, a changed portion of the at least one web page templateand application data is received from the server at the mobile clientdevice in response to the second request. For example, as shown in FIG.17, a changed portion 1702 is received from server 704 at mobile clientdevice 702 in response to the second request.

Note that in an embodiment, steps 1808 and 1810 may occur during asecond or subsequent synchronization process between mobile clientdevice 702 and server 704, although they do not necessarily have tooccur during a synchronization.

In step 1812, a selected web page of the website is displayed on themobile client device in an offline mode. For example, the web page maybe displayed by a graphical user interface (GUI) of mobile client device702 in an offline mode when selected by a user. The selected web pagedisplays data of application data 504 a. The data is formatted accordingto a template of web page template(s) 502 a. The data may have beenchanged, and/or the web page template may have been changed, as receivedin changed portion 1702.

FIG. 18C shows example additional steps for flowchart 1800, according toanother embodiment of the present invention.

In step 1814, a change to the application data is input by a user at themobile client device. For example, in an embodiment, a user of mobileclient device 702 can input one or more changes to application data 504a into mobile client device 702. The changes can alternatively oradditionally include changes to web page template(s) 502 a.

In step 1816, the change to the application data is transmitted from themobile client device to the server. For example, as shown in FIG. 16, achanged portion 1602 is received from mobile client device 702 at server704. Server 704 can then transfer the changes to application provider706. Thus, thereafter, future copies by mobile client device 702, or byother mobile devices, of web page template(s) 502 and application data504 will incorporate the changes transferred thereto as changed portion1602.

Note that in an embodiment, step 1816 may occur during a second orsubsequent synchronization process between mobile client device 702 andserver 704, although it does not necessarily have to occur during asynchronization.

Tracking of Application Usage on Mobile Devices

According to embodiments of the present invention, the usage ofapplications on a mobile device is tracked. The tracking of the usage ofapplications on a mobile device can be useful. For example, it may bedesired to track the usage of applications on mobile devices to justifythe cost of purchasing the applications that run on mobile devices, ascompared to purchasing the applications for use on non-mobile devices,such as desktop computers, etc. A company/organization may want to knowwhether their personnel are using the applications running on mobiledevices, to aid in understanding the value of mobile capability to thecompany/organization. For example a sales company may desire to knowwhether their salespeople are using their mobile devices, and inparticular, whether their salespeople are accessing the sales relatedapplications on the mobile devices.

The usage of any application capable of operating on a mobile device canbe tracked. For example, word processing applications, databaseapplications, web browser applications, record-keeping applications,email applications, proprietary applications, and any other type ofapplication may be tracked.

Furthermore, any type of usage data can be tracked. For example, anumber of times an application is executed or accessed can be tracked.Furthermore, more detailed usage information regarding a particularapplication can be tracked. For example, a number of documents, emails,and databases accessed can be tracked. A number of web pages accessedcan be tracked, including a number of times a particular web page isaccessed. A number of times a synchronization process occurs between aserver and the mobile device can be tracked.

For example, FIG. 19 shows a usage tracker 1910 in mobile client device702, according to an embodiment of the present invention. In anembodiment, usage tracker 1910 is a software module operating in mobileclient device 702. In embodiments, usage tracker 1910 can be implementedin hardware, software, and/or firmware, in any combination.

Usage tracker 1910 can be configured in a variety of ways to track usageof applications. As shown in FIG. 19, for example, in an embodiment,usage tracker 1910 can be coupled to a user interface 1920 of the mobileclient device 702 to be alerted when applications are executed by a userthrough user interface 1920.

In another embodiment, as shown in FIG. 19, applications themselves,such as application 1930 residing in mobile client device 702, cancontain or be supplied with code that notifies usage tracker 1910 whenthe application is being executed. In embodiments, the application codeprovides more detailed information regarding application usage, such asis described above.

In another embodiment, as shown in FIG. 19, usage tracker 1910 canperiodically poll a list of processes 1940 of mobile client device 702that lists processes currently operating on mobile client device 702.Such an arrangement is useful to obtain length-of-time usage informationfor applications. Other ways of tracking applications that are otherwiseknown are also applicable to the present invention. Usage tracker 1910stores application usage information in any manner. For example, asshown in FIG. 19, usage tracker 1910 may write application usageinformation into a log file 1902, as shown in FIG. 19.

Subsequently, the usage information stored in mobile client device 702can be transferred from mobile client device 702 for use elsewhere. Forexample, as shown in FIG. 20, during a synchronization process betweenmobile client device 702 and server 704, log file 1902 is transferred toserver 704. The copy of log file 1902 is shown stored on server 704 aslog file 1902 a. Alternatively, the usage information may be transferredat times other than during a synchronization process.

FIG. 21 shows a flowchart 2100 providing example steps for trackingapplication usage on a mobile device, according to an example embodimentof the present invention. Other structural and operational embodimentswill be apparent to persons skilled in the relevant art(s) based on thefollowing discussion. These steps are described in detail below.

Flowchart 2100 begins with step 2102. In step 2102, occurrence of atleast one user initiated event on the mobile client device while theclient device is operating offline is enabled. For example, as describedabove, the user initiated event(s) may include one or more executions oraccesses of one or more particular applications. Furthermore, asdescribed above, the user initiated event(s) may include one or moreusage events within one or more applications.

In step 2104, usage data corresponding to the occurrence of at least oneuser initiated event on the mobile client device is stored. For example,as shown in FIG. 19 usage data may be stored in log file 1902, or inother device storage or memory.

In step 2106, the mobile client device is synchronized with a server,including the step of transmitting the usage data to the server. Forexample, as shown in FIG. 20, a copy of log file 1902 is transferred toserver 704.

In step 2108, at least one report is created from the usage data. Inembodiments, the usage information stored in log file 1902 may beprocessed and/or formatted in any way to create one or more usefulreports. As described above, the reports may be used to determine theusefulness of having applications available on mobile devices versus onnon-mobile devices, or may be used for other reasons.

In step 2110, the at least one report is displayed. For example, in anembodiment, the at least one report is displayed on a graphical userinterface at server 704, or at another computer system coupled to server704.

CONCLUSION

While various embodiments of the present invention have been describedabove, it should be understood that they have been presented by way ofexample only, and not limitation. It will be apparent to persons skilledin the relevant art that various changes in form and detail can be madetherein without departing from the spirit and scope of the invention.Thus, the breadth and scope of the present invention should not belimited by any of the above-described exemplary embodiments, but shouldbe defined only in accordance with the following claims and theirequivalents.

1. A method for tracking usage of applications on a mobile clientdevice, comprising: (A) enabling occurrence of at least one userinitiated event on the mobile client device while the client device isoperating offline; (B) storing usage data corresponding to theoccurrence of at least one user initiated event on the mobile clientdevice; and (C) synchronizing the mobile client device with a server,including the step of transmitting the usage data to the server.
 2. Themethod of claim 1, further comprising: (D) creating at least one reportfrom the usage data.
 3. The method of claim 1, further comprising: (E)displaying the at least one report.
 4. The method of claim 3, whereinstep (E) comprises: displaying the at least one report on a userinterface at the server.
 5. The method of claim 1, wherein step (B)comprises: storing the usage data in a log file.
 6. A system in a mobileclient device for tracking usage of applications on the mobile clientdevice, comprising: means for enabling occurrence of at least one userinitiated event on the mobile client device while the client device isoperating offline; means for storing usage data corresponding to theoccurrence of at least one user initiated event on the mobile clientdevice; and means for synchronizing the mobile client device with aserver, including means for transmitting the usage data to the server.7. A computer program product comprising a computer usable medium havingcomputer readable program code means embodied in said medium forenabling a processor to track usage of applications on the mobile clientdevice, said computer readable program code means comprising: firstcomputer readable program code means for enabling a processor to enableoccurrence of at least one user initiated event on the mobile clientdevice while the client device is operating offline; second computerreadable program code means for enabling a processor to store usage datacorresponding to the occurrence of at least one user initiated event onthe mobile client device; and third computer readable program code meansfor enabling a processor to synchronize the mobile client device with aserver, including a computer readable program code means for enabling aprocessor to transmit the usage data collected by accessing one or moreprocesses running on the mobile client device to the server.